package lab03.text05;
import java.io.*;

/**
 * 将字符串加密后，通过字符输出流写入文件，
 * 然后读取该文件并解密。加密算法为：
 * 将原有字符的 ASCII码加1，
 * 如'A'字符的 ASCII 码为65，
 * 加密后其 ASCII 码变成66。
 * "	Hello"加密后的字符串为"Ifmmp"。
 */
public class Text {
    public static void main(String[] args) {
        String path = "F:\\Test01.txt";
        File myFile = new File(path);
        //利用file类创建一个新的txt文件
        try {
            myFile.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }

        BufferedWriter writer = null;
        try {
            writer = new BufferedWriter(new FileWriter(path));
            String s = "Hello";

            for (int tmp = 0; tmp < s.length(); tmp++) {
                writer.write((char) (s.charAt(tmp) + 1));
            } //循环写入并加密字符串

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        //解密文件并输出到控制台
        BufferedReader reader = null;
        try {
            reader = new BufferedReader(new FileReader(path));
            System.out.println("输出加密文件:");
            String s = reader.readLine();
            for (int i = 0; i < s.length(); i++) {
                System.out.print((char) (s.charAt(i) - 1));
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
